'\" t
.\"     Title: jack-plumbing
.\"    Author: Rohan Drape <rd@slavepianos.org>
.\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
.\"      Date: 06/16/2013
.\"    Manual: \ \&
.\"    Source: \ \&
.\"  Language: English
.\"
.TH "JACK\-PLUMBING" "1" "06/16/2013" "\ \&" "\ \&"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
jack-plumbing \- JACK Plumbing Daemon
.SH "SYNOPSIS"
.sp
jack\-plumbing [options] [rule\-files]
.SH "OPTIONS"
.sp
\fB\-d\fR : Do not operate as a daemon\&.
.sp
\fB\-o\fR : Do not load ordinary rule files\&.
.sp
\fB\-q\fR : Quiet operation\&.
.sp
\fB\-u\fR : Set the time, in micro\-seconds, that must elapse after a connection notification to indicate the end of a notification set (default=30000)\&. This is an optimization switch\&.
.SH "DESCRIPTION"
.sp
jack\-plumbing maintains a set of port connection rules and manages these as clients register ports with JACK\- Port names are implicitly bounded regular expressions and support sub\-expression patterns\&.
.sp
There are four rules: connect, disconnect, also\-connect and connect\-exclusive\&.
.sp
.if n \{\
.RS 4
.\}
.nf
(connect "SuperCollider:out_(\&.*)" "system:playback_\e1")
.fi
.if n \{\
.RE
.\}
.sp
This connect rule ensures that whenever scsynth(1) is running any output ports it registers are connected to appropriate ALSA playback ports\&. The connect rule only makes a connection if none already exist\&.
.sp
.if n \{\
.RS 4
.\}
.nf
(also\-connect "system:playback_1" "jack\-udp\-[0\-9]*:in_1")
.fi
.if n \{\
.RE
.\}
.sp
This also\-connect rule ensures that when jack\-udp(1) is running in send mode all signals that are ordinarily sent to the local audio interface will also be sent to the network destination\&. The also\-connect aliasing applies to both the left and right hand side of connect rules\&.
.sp
.if n \{\
.RS 4
.\}
.nf
(connect\-exclusive "SuperCollider:out_(\&.*)" "ardour:sc3_in_\e1/in 1")
.fi
.if n \{\
.RE
.\}
.sp
This connect\-exclusive rule ensures that if SuperCollider and an ardour(1) session with appropriate tracks are both running that SuperCollider gets connected to ardour and disconnected from everything else\&.
.sp
This type of connection daemon has the following advantages over both environment variables and command line arguments:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
it does not require any client connection support or logic at all
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
it provides a uniform user interface to all clients
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
it has a somewhat declarative style
.RE
.sp
This type of daemon is very lightweight and non\-intrusive: it requires no arguments, it runs from an unprivileged thread, if the rule set is empty it is a no\-op, it does not write any files, it does not require any modification to clients or to how clients are started\&.
.sp
When a set of port registrations is made it checks the modification time of the rule set files, \fI/etc/jack\-plumbing\fR and \fI~/\&.jack\-plumbing\fR, and any files specified by the user, rereads the rule set if it has been updated, then makes the JACK graph obey the rules\&.
.sp
Any lines beginning with a semi\-colon are ignored\&.
.sp
The rule set is sorted, disconnect rules are applied first, then connect rules, then connect\-exclusive rules\&.
.SH "FILES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
/etc/jack\-plumbing
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
~/\&.jack\-plumbing
.RE
.SH "AUTHOR"
.sp
Written by Rohan Drape http://slavepianos\&.org/rd/
.SH "SEE ALSO"
.sp
jackd(1)
.SH "AUTHOR"
.PP
\fBRohan Drape\fR <\&rd@slavepianos\&.org\&>
.RS 4
Author.
.RE
